/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package its.serviceSystem.Bean;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dds2.ServicesSystem.Modelo.Profile;
import mx.its.dds2.ServicesSystem.Modelo.Typeclass;
import mx.its.dds2.ServicesSystem.Modelo.Usersystem;
import mx.its.dds2.serviceSystem.Bl.UserSystemBlLocal;
import mx.its.dds2.serviceSystem.Dao.ProfileDaoLocal;
import mx.its.dds2.serviceSystem.Dao.TypeclassDaoLocal;
import mx.its.dds2.serviceSystem.Dao.UsersystemDaoLocal;

/**
 *
 * @author Carlos Asis
 */
@ManagedBean
@SessionScoped
public class UserSystemBean {
    @EJB
    private UsersystemDaoLocal usersystemDao;
    @EJB
    private UserSystemBlLocal userSystemBl;
   
   
    @EJB
    private TypeclassDaoLocal typeclassDao;
    @EJB
    
    private ProfileDaoLocal profileDao;
    private Usersystem usuario;
    private List<Usersystem> listUsuarios;
    private List<Profile> listProfile;
    private List<Typeclass> listTypeClass;
    private int b = 0;
    private int perfilSelect;
    private int typeClassSelect;

    public UserSystemBean() {
        usuario = new Usersystem();
    }

    public List<Profile> getListProfile() {
        listProfile = profileDao.findAll();
        return listProfile;
    }

    public void setListProfile(List<Profile> listProfile) {
        this.listProfile = listProfile;
    }

    public List<Typeclass> getListTypeClass() {
        listTypeClass = typeclassDao.findAll();
        return listTypeClass;
    }

    public void setListTypeClass(List<Typeclass> listTypeClass) {
        this.listTypeClass = listTypeClass;
    }

    public int getPerfilSelect() {
        return perfilSelect;
    }

    public void setPerfilSelect(int perfilSelect) {
        this.perfilSelect = perfilSelect;
    }

    public int getTypeClassSelect() {
        return typeClassSelect;
    }

    public void setTypeClassSelect(int typeClassSelect) {
        this.typeClassSelect = typeClassSelect;
    }

    public Usersystem getUsuario() {
        return usuario;
    }

    public void setUsuario(Usersystem usuario) {
        this.usuario = usuario;
    }

    public List<Usersystem> getListUsuarios() {
        listUsuarios=usersystemDao.findAll();
        return listUsuarios;
    }

    public void setListUsuarios(List<Usersystem> listUsuarios) {
        this.listUsuarios = listUsuarios;
    }

    public String prepararNuevo() {
        b = 1;
        usuario = new Usersystem();
        return "UserCrearEditar";
    }

    public void prepararProfileAndType(ActionEvent evet) {
        usuario.setIdPerfil(profileDao.find(perfilSelect));
        usuario.setIdclass(typeclassDao.find(typeClassSelect));
    }

    public void prepararEditar(ActionEvent a) {
        b = 2;
        String cId = a.getComponent().getClientId().split(":")[2];
        int id = Integer.parseInt(cId);
        usuario = listUsuarios.get(id);
    }

    public String guardar() {
        switch (b) {
            case 1:
                System.out.println(usuario.getName());
                userSystemBl.register(usuario);
                break;
            case 2:
                userSystemBl.modify(usuario);
                break;
            case 3:
            // userSystemBl.;
        }
        return "UserFacelets";
    }

    public void eliminar(ActionEvent a) {
        b = 3;
        String cId = a.getComponent().getClientId().split(":")[2];
        int id = Integer.parseInt(cId);
        usuario = listUsuarios.get(id);
        guardar();
    }
}
